Andrea Corallo [Sun, 7 Mar 2021 19:25:28 +0000 (20:25 +0100)]
* lisp/emacs-lisp/comp.el (w32-get-nproc): Suppress warning declaring it.
For non Windows system.
Andrea Corallo [Sun, 7 Mar 2021 19:19:20 +0000 (20:19 +0100)]
Allow for `comp-native-driver-options' to work as a file-local variable.
Andrea Corallo [Sun, 7 Mar 2021 18:48:04 +0000 (19:48 +0100)]
* Work around GCC PR99126 on all libgccjit < 11
* src/comp.c (Fcomp__compile_ctxt_to_file): Work around GCC
PR99126 on all libgccjit < 11.
Eli Zaretskii [Sun, 7 Mar 2021 14:31:35 +0000 (16:31 +0200)]
Avoid aborts in native-comp subprocesses when exiting Emacs on Windows
* src/w32.c (shutdown_handler): Clear the message stack when being
shut down in noninteractive mode, to avoid aborting in
shut_down_emacs when a native-compilation subprocess is killed
because the parent Emacs exits.
Eli Zaretskii [Sun, 7 Mar 2021 13:52:20 +0000 (15:52 +0200)]
Fix encoding of file names in comp.c
* src/comp.c (Fcomp__compile_ctxt_to_file) [WINDOWSNT]: Fix
encoding of file names passed to libgccjit.
Eli Zaretskii [Sun, 7 Mar 2021 13:32:55 +0000 (15:32 +0200)]
Use MS-Windows system APIs to get number of processors
* lisp/emacs-lisp/comp.el: Use 'w32-get-nproc' instead of the
environment variable NUMBER_OF_PROCESSORS.
* src/w32proc.c (Fw32_get_nproc): New primitive.
* src/w32.c (w32_get_nproc): New function.
(sample_system_load): Call w32_get_nproc to initialize the number
of processors on this system.
* src/w32.h (w32_get_nproc): Add prototype.
Eli Zaretskii [Sun, 7 Mar 2021 10:53:51 +0000 (12:53 +0200)]
; * src/comp.c (Fcomp__compile_ctxt_to_file) [WINDOWSNT]: Fix last change.
Eli Zaretskii [Sun, 7 Mar 2021 10:49:05 +0000 (12:49 +0200)]
Fix libgccjit PROGNAME on MS-Windows
* src/comp.c [WINDOWSNT]: Import gcc_jit_context_set_str_option.
(init_gccjit_functions): Load gcc_jit_context_set_str_option.
(gcc_jit_context_set_str_option) [WINDOWSNT]: New macro.
(Fcomp__compile_ctxt_to_file) [WINDOWSNT]: Pass the actual name of
the libgccjit DLL to the library, to be used as PROGNAME.
Andrea Corallo [Sat, 6 Mar 2021 21:36:50 +0000 (22:36 +0100)]
Fix `comp-cstr-intersection-no-hashcons' for negated result cstr
* lisp/emacs-lisp/comp-cstr.el
(comp-cstr-intersection-no-hashcons): When negated and
necessary relax dst to t.
* test/src/comp-tests.el (comp-tests-type-spec-tests): Add a test.
Pip Cet [Sat, 6 Mar 2021 20:53:57 +0000 (20:53 +0000)]
Fix miscompilation of funcall forms in some cases (bug#46974)
* lisp/emacs-lisp/comp.el (comp-call-optim-func): Call
comp-cstr-imm-vld-p before relying on comp-cstr-imm to return the
right value.
Andrea Corallo [Sat, 6 Mar 2021 19:51:11 +0000 (20:51 +0100)]
* lisp/emacs-lisp/comp.el (comp-add-cond-cstrs-simple): Suppress warning.
Andrea Corallo [Sat, 6 Mar 2021 19:38:00 +0000 (20:38 +0100)]
Fix `=' propagation to handle -0.0 0.0 case
* lisp/emacs-lisp/comp-cstr.el
(comp-cstr-intersection-homogeneous): Fix indent + use `memql'.
(comp-cstr-=): Handle 0.0 -0.0 idiosyncrasy
* test/src/comp-tests.el (comp-tests-type-spec-tests): Add two
tests and fix enumeration.
Eli Zaretskii [Fri, 5 Mar 2021 14:39:10 +0000 (16:39 +0200)]
Fix some unsafe uses of SSDATA in comp.c
* src/comp.c (comp_hash_source_file)
(Fcomp__compile_ctxt_to_file, Fnative_elisp_load): Encode file
names before passing them to library APIs.
(Fcomp__compile_ctxt_to_file): use emacs_fopen instead of fopen.
(declare_lex_function): Avoid keeping a 'char *' pointer around
while calling Lisp, which could trigger GC, which could relocate
string data.
Andrea Corallo [Fri, 5 Mar 2021 09:45:09 +0000 (10:45 +0100)]
* Harden `comp-abi-hash' computation
Account for subr arity in `comp-abi-hash' computation as that's part
of the ABI exposed to .eln files.
* src/comp.c (Fcomp__subr_signature): New support function.
(hash_native_abi): Make use of.
(syms_of_comp): Register 'Scomp__subr_signature'.
Andrea Corallo [Thu, 4 Mar 2021 20:43:59 +0000 (21:43 +0100)]
* Makefile.in (ELN_DESTDIR): Remove unnecessary double quoting.
Eli Zaretskii [Thu, 4 Mar 2021 18:36:43 +0000 (20:36 +0200)]
Fix typos and doc strings in native-compilation files
* lisp/emacs-lisp/comp.el (comp-speed, comp-debug, comp-verbose)
(comp-always-compile, comp-deferred-compilation-deny-list)
(comp-bootstrap-deny-list, comp-never-optimize-functions)
(comp-async-jobs-number, comp-async-cu-done-hook)
(comp-async-all-done-hook, comp-async-env-modifier-form)
(comp-pass, comp-native-compiling, comp-post-pass-hooks)
(comp-known-predicate-p, comp-pred-to-cstr)
(comp-symbol-values-optimizable, comp-limple-assignments)
(comp-limple-calls, comp-limple-branches, comp-block)
(comp-vec--verify-idx, comp-vec-aref, comp-vec-append)
(comp-vec-prepend, comp-block-preds)
(comp-ensure-native-compiler, comp-log, comp-log-func)
(comp-loop-insn-in-block, comp-byte-frame-size)
(comp-add-func-to-ctxt, comp-spill-lap-function, comp-spill-lap)
(comp-lap-fall-through-p, comp-new-frame, comp-emit-set-call)
(comp-copy-slot, comp-latch-make-fill, comp-emit-cond-jump)
(comp-body-eff, comp-op-case, comp-prepare-args-for-top-level)
(comp-limplify-top-level, comp-negate-arithm-cmp-fun)
(comp-emit-assume, comp-cond-cstrs-target-mvar)
(comp-function-foldable-p, comp-function-call-maybe-fold)
(comp-form-tco-call-seq, comp-clean-up-stale-eln)
(comp-delete-or-replace-file, comp--native-compile)
(native--compile-async, native-compile)
(batch-byte-native-compile-for-bootstrap): Fix typos, wording, and
punctuation in doc strings.
* lisp/loadup.el: Fix typos.
* src/lread.c (syms_of_lread): Doc fix.
Andrea Corallo [Thu, 4 Mar 2021 08:03:26 +0000 (09:03 +0100)]
* src/comp.c (hash_native_abi): Account for `system-configuraton-options'.
Pip Cet [Sun, 28 Feb 2021 06:31:00 +0000 (06:31 +0000)]
Don't call _setjmp through a function pointer (Bug#46824)
* src/comp.c (helper_link_table): Don't include SETJMP except on Windows.
(emit_setjmp): Don't use function pointers except on Windows.
(declare_runtime_imported_funcs): Don't import SETJMP at runtime.
(ABI_VERSION): Bump.
* test/src/comp-tests.el (46824-1): New test.
* test/src/comp-test-funcs.el (comp-test-46824-1-f): New function.
Andrea Corallo [Wed, 3 Mar 2021 19:25:14 +0000 (20:25 +0100)]
* src/comp.c (return_nil): Make it not a nested function.
Andrea Corallo [Tue, 2 Mar 2021 16:23:12 +0000 (17:23 +0100)]
Fix two compiler ICEs dealing with nan and infinity
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-=): Don't crash when
truncate fails.
* test/src/comp-test-funcs.el (comp-test-=-nan): Add two functions
to be compiled.
Eli Zaretskii [Wed, 3 Mar 2021 18:15:58 +0000 (20:15 +0200)]
Fix compilation warnings in --with-wide-int build on Windows
* src/comp.c (emit_rvalue_from_emacs_uint)
(emit_rvalue_from_lisp_word_tag): Fix comparison of unsigned
values.
(gcc_jit_context_new_rvalue_from_ptr): Define only if
LISP_WORDS_ARE_POINTERS, to avoid compilation warning.
(init_gccjit_functions): Load gcc_jit_context_new_rvalue_from_ptr
only if LISP_WORDS_ARE_POINTERS.
Eli Zaretskii [Wed, 3 Mar 2021 17:58:20 +0000 (19:58 +0200)]
Avoid aborting on MS-Windows at startup
* src/emacs.c (set_invocation_vars) [WINDOWSNT]: If argv0 is not
an absolute file name, obtain the absolute file name of the Emacs
executable from 'w32_my_exename'.
Eli Zaretskii [Wed, 3 Mar 2021 11:59:08 +0000 (13:59 +0200)]
Improve NEWS entries about native-compilation
* etc/NEWS: Add an entry about native-compilation. Improve
wording of the entry about 'package-native-compile'.
Andrea Corallo [Tue, 2 Mar 2021 07:43:39 +0000 (08:43 +0100)]
Fix = propagation semantic for constrained inputs
* lisp/emacs-lisp/comp-cstr.el (comp-cstr): Synthesize
`comp-cstr-shallow-copy'.
(comp-cstr-=): Relax inputs before intersecting them.
* test/src/comp-tests.el (comp-tests-type-spec-tests): Add three
tests.
Andrea Corallo [Mon, 1 Mar 2021 18:39:00 +0000 (19:39 +0100)]
Fix `eql' `equal' propagation of non hash consed values (bug#46843)
Extend assumes allowing the following form:
(assume dst (and-nhc src1 src2))
`and-nhc' assume operator allow for constraining correctly
intersections where non hash consed values are not propagated as
values but rather promoted to their types.
* lisp/emacs-lisp/comp-cstr.el
(comp-cstr-intersection-no-hashcons): New function.
* lisp/emacs-lisp/comp.el (comp-emit-assume): Logic update to emit
`and-nhc' operator (implemented in fwprop by
`comp-cstr-intersection-no-hashcons').
(comp-add-cond-cstrs): Map `eq' to `and' assume operator and
`equal' `eql' into `and-nhc'.
(comp-fwprop-insn): Update to handle `and-nhc'.
* test/src/comp-tests.el (comp-tests-type-spec-tests): Add two
tests covering `eql' and `equal' propagation of non hash consed
values.
Andrea Corallo [Sat, 27 Feb 2021 21:00:11 +0000 (22:00 +0100)]
Don't treat '=' as simple equality emitting constraints (bug#46812)
Extend assumes allowing the following form
(assume dst (= src1 src2))
to caputure '=' semanting during fwprop handling float integer
conversions.
* lisp/emacs-lisp/comp.el (comp-equality-fun-p): Don't treat '=' as
simple equality.
(comp-arithm-cmp-fun-p, comp-negate-arithm-cmp-fun)
(comp-reverse-arithm-fun): Rename and add '=' '!='.
(comp-emit-assume, comp-add-cond-cstrs, comp-fwprop-insn): Update
for new function nameing and to handle '='.
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-=): New function.
* test/src/comp-tests.el (comp-tests-type-spec-tests): Add a bunch
of '=' specific tests.
Andrea Corallo [Sat, 27 Feb 2021 20:26:41 +0000 (21:26 +0100)]
Migrate and rename a bunch of functions from comp.el to comp-cstr.el
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-imm-vld-p)
(comp-cstr-imm, comp-cstr-fixnum-p, comp-cstr-symbol-p)
(comp-cstr-cons-p): Move and rename from 'comp.el'.
* lisp/emacs-lisp/comp.el (comp-mvar-type-hint-match-p)
(make-comp-mvar, comp-emit-assume, comp-fwprop-prologue)
(comp-function-foldable-p, comp-function-call-maybe-fold)
(comp-fwprop-call, comp-fwprop-insn, comp-call-optim-func)
(comp-compute-function-type): Update for renamed functions.
* src/comp.c (emit_mvar_rval): Likewise.
* test/src/comp-tests.el (comp-tests-mentioned-p-1)
(comp-tests-cond-rw-checker-val): Likewise.
Andrea Corallo [Fri, 26 Feb 2021 20:27:02 +0000 (21:27 +0100)]
* Canonicalize filenames on Windows before hashing (bug#46256)
* src/comp.c (Fcomp_el_to_eln_filename): On Windowns
canonicalize filenames before hashing.
Andrea Corallo [Fri, 26 Feb 2021 19:11:31 +0000 (20:11 +0100)]
* Change native compiler configure flag into '--with-native-compilation'
* configure.ac: Rename configure nativecomp flags into
--with-native-compilation.
Andrea Corallo [Fri, 26 Feb 2021 18:57:41 +0000 (19:57 +0100)]
* Interactive tag native compilation function in emacs-lisp-mode
* lisp/progmodes/elisp-mode.el
(emacs-lisp-native-compile-and-load): Tag it for `emacs-lisp-mode'.
Andrea Corallo [Fri, 26 Feb 2021 18:54:59 +0000 (19:54 +0100)]
Merge remote-tracking branch 'savannah/master' into native-comp
Michael Albinus [Fri, 26 Feb 2021 17:37:14 +0000 (18:37 +0100)]
Fix Tramp manual
* doc/misc/tramp.texi (External methods): Mention "about-args".
(Remote shell setup): Use sshx.
Stefan Kangas [Fri, 26 Feb 2021 17:03:19 +0000 (18:03 +0100)]
Make some defcustom types stricter in comp.el
* lisp/emacs-lisp/comp.el (comp-speed, comp-debug, comp-verbose)
(comp-async-jobs-number, comp-async-env-modifier-form): Use stricter
types.
Stefan Kangas [Fri, 26 Feb 2021 16:56:36 +0000 (17:56 +0100)]
Add :version tags to defcustoms in comp.el
* lisp/emacs-lisp/comp.el (comp-speed, comp-debug, comp-verbose)
(comp-never-optimize-functions, comp-async-jobs-number)
(comp-async-cu-done-hook, comp-async-all-done-hook)
(comp-async-env-modifier-form)
(comp-async-report-warnings-errors, comp-native-driver-options)
(comp-libgccjit-reproducer): Add :version tags.
Stefan Kangas [Fri, 26 Feb 2021 16:09:57 +0000 (17:09 +0100)]
; * test/lisp/progmodes/f90-tests.el: Remove stale comment.
Stefan Kangas [Fri, 26 Feb 2021 16:05:18 +0000 (17:05 +0100)]
* lisp/progmodes/dcl-mode.el: Minor doc fixes.
Stefan Kangas [Fri, 26 Feb 2021 15:23:45 +0000 (16:23 +0100)]
Convert some more progmode menus to easy-menu-define
* lisp/progmodes/dcl-mode.el (dcl-mode-map):
* lisp/progmodes/icon.el (icon-mode-map):
* lisp/progmodes/scheme.el (scheme-mode-map):
Move menu definitions from here...
* lisp/progmodes/dcl-mode.el (dcl-mode-menu):
* lisp/progmodes/icon.el (icon-mode-menu)
* lisp/progmodes/scheme.el (scheme-mode-menu):
...to here, and use easy-menu-define.
* lisp/progmodes/icon.el
(icon-mode-map, icon-mode-syntax-table): Simplify.
Stefan Kangas [Fri, 26 Feb 2021 15:09:14 +0000 (16:09 +0100)]
Convert simula-mode menu to easy-menu-define
* lisp/progmodes/simula.el (simula-mode-map): Move menu definition
from here...
(simula-mode-menu): ...to here, and use easy-menu-define.
(simula-popup-menu): Declare unused function obsolete.
Stefan Kangas [Fri, 26 Feb 2021 14:59:56 +0000 (15:59 +0100)]
Fix syntax highlighting of easy-menu-define docstrings
* lisp/emacs-lisp/easymenu.el (easy-menu-define): Add doc-string
declaration for correct syntax highlighting.
Stefan Kangas [Fri, 26 Feb 2021 14:50:41 +0000 (15:50 +0100)]
Remove redundant requires of easymenu
* lisp/allout.el:
* lisp/emacs-lisp/edebug.el:
* lisp/emacs-lisp/ert.el:
* lisp/erc/erc-menu.el:
* lisp/help-mode.el:
* lisp/net/dictionary.el:
* lisp/nxml/rng-nxml.el:
* lisp/progmodes/ebrowse.el:
* lisp/progmodes/meta-mode.el:
* lisp/progmodes/prolog.el:
* lisp/progmodes/ps-mode.el:
* lisp/progmodes/vera-mode.el:
* lisp/wid-browse.el: Remove redundant require of easymenu. We only
use the autoloaded macro 'easy-menu-define' here.
Stefan Kangas [Fri, 26 Feb 2021 04:43:53 +0000 (05:43 +0100)]
Remove check for missing easymenu from cperl-mode.el
* lisp/progmodes/cperl-mode.el (cperl-menu): Don't wrap definition
in condition-case; easymenu always exists in Emacs.
(easymenu): Remove redundant require.
Eli Zaretskii [Fri, 26 Feb 2021 14:50:41 +0000 (16:50 +0200)]
Fix last change
* lisp/emacs-lisp/comp.el (comp-async-report-warnings-errors):
Improve wording of the doc string.
Andrea Corallo [Fri, 26 Feb 2021 14:15:06 +0000 (15:15 +0100)]
* Improve `comp-async-report-warnings-errors' docstring
* lisp/emacs-lisp/comp.el (comp-async-report-warnings-errors):
Improve docstring.
Eli Zaretskii [Fri, 26 Feb 2021 14:08:44 +0000 (16:08 +0200)]
Improve documentation of last change
* lisp/emacs-lisp/comp.el (comp-async-query-on-exit)
(comp-async-report-warnings-errors): Improve wording.
Andrea Corallo [Fri, 26 Feb 2021 07:49:58 +0000 (08:49 +0100)]
* Add `comp-async-query-on-exit' customize.
* lisp/emacs-lisp/comp.el (comp-async-query-on-exit): New customize.
(comp-run-async-workers): Make use of.
Basil L. Contovounesios [Sat, 20 Feb 2021 18:55:12 +0000 (18:55 +0000)]
Function-quote completion property of declare form
For discussion, see the following thread:
https://lists.gnu.org/r/emacs-devel/2021-02/msg01666.html
* lisp/emacs-lisp/byte-run.el (byte-run--set-completion): Quote with
'function' for syntactical consistency with other declare form
properties. This allows writing (declare (completion foo)) instead
of (declare (completion 'foo)).
* lisp/emacs-lisp/easymenu.el (easy-menu-do-define):
* lisp/gnus/gnus-sum.el (gnus-summary-make-menu-bar): Prefer
function-put over put for function symbols.
* lisp/subr.el (ignore, undefined): Remove #'-quoting from declare
form; it is no longer needed.
Mattias Engdegård [Fri, 26 Feb 2021 08:52:16 +0000 (09:52 +0100)]
Fix pcase rx pattern bugs
Two unrelated bugs: A missing type check caused an error in rx
patterns for non-string match targets, and rx patterns did not work at
all in pcase-let or pcase-let*.
Second bug reported by Basil Contovounesios and Ag Ibragimov; fixes
proposed by Stefan Monnier. Discussion and explanation in thread at
https://lists.gnu.org/archive/html/emacs-devel/2021-02/msg01924.html
* lisp/emacs-lisp/rx.el (rx): Add (pred stringp) to avoid type errors,
and replace the `pred` clause for the actual match with something that
works with pcase-let(*) without being optimised away.
* test/lisp/emacs-lisp/rx-tests.el (rx-pcase): Add test cases.
Andrea Corallo [Thu, 25 Feb 2021 19:46:27 +0000 (20:46 +0100)]
* Fix some comp-vec logic
* lisp/emacs-lisp/comp.el (comp-vec-length, comp-vec-append)
(comp-vec-prepend): Fix logic.
(comp-vec-aref): Fix indentation.
Andrea Corallo [Thu, 25 Feb 2021 19:25:05 +0000 (20:25 +0100)]
* Fix two docstrings in comp.el
* lisp/emacs-lisp/comp.el (comp-new-frame,
comp-maybe-add-vmvar): Fix docstring.
Eli Zaretskii [Thu, 25 Feb 2021 18:58:44 +0000 (20:58 +0200)]
Fix documentation of a recent change
* src/fns.c (Fyes_or_no_p): Don't use braces around one-line
block.
(syms_of_fns) <use-short-answers>: Improve the wording of the doc
string.
* etc/NEWS: Improve wording of the entry about 'use-short-answers'.
Juri Linkov [Thu, 25 Feb 2021 18:45:40 +0000 (20:45 +0200)]
New variable 'use-short-answers' to use 'y-or-n-p' instead of 'yes-or-no-p'
* lisp/cus-start.el: Add use-short-answers.
* lisp/emacs-lisp/map-ynp.el (read-answer): Handle use-short-answers.
(read-answer-short): Add use-short-answers to docstring.
* src/fns.c (Fyes_or_no_p): Call y-or-n-p if use_short_answers is true.
(syms_of_fns): Add DEFVAR_BOOL use-short-answers (bug#46594).
Alan Third [Wed, 24 Feb 2021 09:52:42 +0000 (09:52 +0000)]
Fix freeze on older macOS's (bug#46687)
* src/nsterm.m ([EmacsView windowDidChangeBackingProperties:]):
([EmacsView viewWillDraw]): Only run this code when actually drawing
to an offscreen bitmap.
Robert Pluim [Thu, 25 Feb 2021 15:39:34 +0000 (16:39 +0100)]
Re-enable network-stream-tests.el :nowait t tests
After the fix for Bug#46709, these no longer fail in the absence of a
working Internet connection
* test/lisp/net/network-stream-tests.el (internet-is-working): Remove
defvar, it's no longer needed in this file.
* test/lisp/net/network-stream-tests.el
(connect-to-tls-ipv4-nowait):
(connect-to-tls-ipv6-nowait):
(open-network-stream-tls-nowait):
(open-gnutls-stream-new-api-nowait):
(open-gnutls-stream-old-api-nowait): Remove check for internet-is-working.
Robert Pluim [Thu, 25 Feb 2021 15:36:56 +0000 (16:36 +0100)]
Don't crash if gnutls_handshake fails
In some situations involving Internet access not being fully
functional, gnutls_handshake returns a fatal error, which we were
ignoring, causing us to call gnutls_handshake again. Now we check for
the error and return it to the caller.
* src/gnutls.c (gnutls_try_handshake): Return immediately if
gnutls_handshake returns a fatal error (Bug#46709).
Robert Pluim [Thu, 25 Feb 2021 15:33:47 +0000 (16:33 +0100)]
* Specify 'ipv4 when testing ipv4 in network-stream-tests.el
* test/lisp/net/network-stream-tests.el
(connect-to-tls-ipv4-nowait): Specify :family 'ipv4.
Robert Pluim [Tue, 23 Feb 2021 14:21:26 +0000 (15:21 +0100)]
; * src/xfaces.c (realize_gui_face): Correct formatting
* src/xfaces.c (realize_gui_face): Correct code formatting.
Stefan Kangas [Thu, 25 Feb 2021 11:54:58 +0000 (12:54 +0100)]
Convert epa-key-list-mode menu to easy-menu-define
* lisp/epa.el (epa-key-list-mode-map): Move menu from here...
(epa-key-list-mode-menu): ...to here, and convert to easy-menu-define.
Stefan Monnier [Thu, 25 Feb 2021 04:08:47 +0000 (23:08 -0500)]
Remove last remaining external uses of `edebug-form-spec`
* lisp/emacs-lisp/gv.el (gv-place): Use `def-edebug-elem-spec`.
* lisp/obsolete/erc-compat.el (erc-define-minor-mode): Remove redundant
`edebug-form-spec`.
Stefan Monnier [Wed, 24 Feb 2021 23:39:06 +0000 (18:39 -0500)]
* test/lisp/emacs-lisp/macroexp-tests.el (macroexp--tests-file-name): Add case
Add use of `macroexp-file-name` from a macro called from within
a function, which works thanks to eager-macroexpansion (so the macro
is expanded which the file is being loaded rather than only later
when the function is called).
* test/lisp/emacs-lisp/macroexp-resources/m1.el
(macroexp--m1-tests-file-name): New function.
Stefan Monnier [Wed, 24 Feb 2021 23:12:18 +0000 (18:12 -0500)]
* test/lisp/emacs-lisp/macroexp-tests.el (macroexp--tests-file-name): New test
* test/lisp/emacs-lisp/macroexp-resources/m1.el:
* test/lisp/emacs-lisp/macroexp-resources/m2.el: New files.
Lars Ingebrigtsen [Wed, 24 Feb 2021 22:55:05 +0000 (23:55 +0100)]
Include a "make check-maybe" in the admin/emake script
Basil L. Contovounesios [Wed, 24 Feb 2021 22:34:06 +0000 (22:34 +0000)]
; Fix recent obsoletion warning in cl.el.
Basil L. Contovounesios [Wed, 24 Feb 2021 22:20:10 +0000 (22:20 +0000)]
; Add :version tags to recent newsticker options.
Stefan Monnier [Wed, 24 Feb 2021 22:16:00 +0000 (17:16 -0500)]
* lisp/emacs-lisp/macroexp.el (macroexp-file-name): Work in `eval-buffer`
Rely on `current-load-list` instead of `load-file-name`.
* lisp/emacs-lisp/bytecomp.el (byte-compile-close-variables):
Change the var we override accordingly.
Lars Ingebrigtsen [Wed, 24 Feb 2021 19:32:09 +0000 (20:32 +0100)]
Improve quail-update-leim-list-file error messaging
* lisp/international/quail.el (quail-update-leim-list-file): Give
a better error message.
Lars Ingebrigtsen [Wed, 24 Feb 2021 19:31:31 +0000 (20:31 +0100)]
Fix warning generated by indian.el + quail.el
* lisp/leim/quail/indian.el (quail-define-indian-trans-package):
Reintroduce kludge to fix automatic detection by Quail.
Juri Linkov [Wed, 24 Feb 2021 18:52:27 +0000 (20:52 +0200)]
* lisp/tab-bar.el: Move aliases down closer to keybindings.
Juri Linkov [Wed, 24 Feb 2021 18:51:04 +0000 (20:51 +0200)]
* lisp/tab-bar.el (tab-switch): New defalias to 'tab-bar-switch-to-tab'.
(tab-prefix-map): Bind "O" to 'tab-previous'.
Stefan Monnier [Wed, 24 Feb 2021 18:52:45 +0000 (13:52 -0500)]
* lisp/emacs-lisp/macroexp.el (macroexp-file-name): New function.
Yes, finally: a function that tells you the name of the file where
the code is located. Finding this name is non-trivial in practice,
as evidenced by the "4 shift/reduce conflicts" warning when compiling
CEDET's python.el, because its `wisent-source` got it wrong in that
case, thinking the grammar came from `python.el` instead of
`python-wy.el`.
While at it, also made `macroexp-compiling-p` public, since it's
useful at various places.
(macroexp-compiling-p): Rename from `macroexp--compiling-p`.
* lisp/emacs-lisp/bytecomp.el (byte-compile-close-variables):
Bind `load-file-name` to nil so we can distinguish a load that calls
the byte compiler from a byte compilation which causes a load.
* lisp/cedet/semantic/wisent/python.el (wisent-python--expected-conflicts):
Remove; it was just a workaround.
* lisp/subr.el (do-after-load-evaluation): Avoid `byte-compile--` vars.
* lisp/cedet/semantic/fw.el (semantic-alias-obsolete):
Use `macroexp-compiling-p` and `macroexp-file-name`.
* lisp/cedet/semantic/wisent/comp.el (wisent-source): Use `macroexp-file-name`
(wisent-total-conflicts): Tighten regexp.
* lisp/emacs-lisp/cl-lib.el (cl--compiling-file): Delete function
and variable. Use `macroexp-compiling-p` instead.
* lisp/progmodes/flymake.el (flymake-log):
* lisp/emacs-lisp/package.el (package-get-version):
* lisp/emacs-lisp/ert-x.el (ert-resource-directory):
Use `macroexp-file-name`.
Ulf Jasper [Wed, 24 Feb 2021 18:26:37 +0000 (19:26 +0100)]
Add options to use feed names from newticker-url-list
* lisp/net/newst-treeview.el
(newsticker-treeview-use-feed-name-from-url-list-in-treeview): New.
(newsticker-treeview-use-feed-name-from-url-list-in-itemview): New.
(newsticker--treeview-item-show): Show feed name from
newsticker-url-list if wanted.
(newsticker--treeview-propertize-tag): Add argument 'tooltip'.
(newsticker--treeview-tree-get-tag): Usefeed name from
newsticker-url-list if wanted. (Fixes third issue in
Bug#41376.)
Lars Ingebrigtsen [Wed, 24 Feb 2021 17:29:25 +0000 (18:29 +0100)]
Fix wisent/python.el grammar warning
* lisp/cedet/semantic/wisent/python.el: Fix warning about
shift/reduce conflicts in the Python grammar.
Lars Ingebrigtsen [Wed, 24 Feb 2021 17:13:03 +0000 (18:13 +0100)]
Fix warning generated by indian.el + quail.el
* lisp/leim/quail/indian.el (quail-define-indian-trans-package):
Reintroduce kludge to fix automatic detection by Quail.
Lars Ingebrigtsen [Wed, 24 Feb 2021 16:58:38 +0000 (17:58 +0100)]
Remove the "Documentation:" line from the variable help
* lisp/help-fns.el (describe-variable): Remove the
"Documentation:" line (bug#46702). This makes the help text more
compact and seems easier to read, too.
Lars Ingebrigtsen [Wed, 24 Feb 2021 16:53:53 +0000 (17:53 +0100)]
Fix Calc menu item for vector dot products
* lisp/calc/calc-menu.el (calc-vectors-menu): Use the correct
function `calc-times' instead of the non-existent `calc-mult'
function (bug#46710).
Doug Davis [Wed, 24 Feb 2021 16:43:49 +0000 (17:43 +0100)]
Interactive tag byte compilation functions in emacs-lisp-mode
* lisp/progmodes/elisp-mode.el (emacs-lisp-byte-compile)
(emacs-lisp-byte-compile-and-load): Add interactive tagging
(bug#46721).
Miha Rihtaršič [Wed, 24 Feb 2021 16:38:56 +0000 (17:38 +0100)]
Run all functions in `prefix-command-echo-keystrokes-functions'
* lisp/simple.el (internal-echo-keystrokes-prefix): Really run all
functions in `prefix-command-echo-keystrokes-functions' (bug#46727).
Copyright-paperwork-exempt: yes
Protesilaos Stavrou [Wed, 24 Feb 2021 16:18:26 +0000 (17:18 +0100)]
Use named faces in shortdoc
* shortdoc.el (shortdoc-heading): Define new face for headings.
(shortdoc-display-group): Apply new heading face.
(shortdoc--display-function): Use existing face for section text.
* etc/NEWS: Document new face (bug#46748).
Utkarsh Singh [Tue, 23 Feb 2021 15:41:14 +0000 (16:41 +0100)]
Use sh-mode for PKGBUILD files
* lisp/files.el (auto-mode-alist): Use sh-mode for PKGBUILD files
(bug#46660).
Copyright-paperwork-exempt: yes
Eli Zaretskii [Wed, 24 Feb 2021 15:55:28 +0000 (17:55 +0200)]
Fix dangerous code in xdisp.c
* src/xdisp.c (move_it_to, display_line): Make sure ZV_BYTE is
greater than 1 before fetching previous byte.
Eli Zaretskii [Wed, 24 Feb 2021 15:43:08 +0000 (17:43 +0200)]
Better support for 'truncate-line' non-nil in the mini-window
* src/xdisp.c (resize_mini_window): Resize the mini-window
when multi-line text is displayed under truncate-lines
non-nil in the minibuffer. (Bug#46718)
Protesilaos Stavrou [Wed, 24 Feb 2021 09:18:38 +0000 (11:18 +0200)]
Specify the Emacs version of new vc-dir faces
* vc-dir.el (vc-dir-header)
(vc-dir-header-value)
(vc-dir-directory)
(vc-dir-file)
(vc-dir-mark-indicator)
(vc-dir-status-warning)
(vc-dir-status-edited)
(vc-dir-status-up-to-date)
(vc-dir-status-ignored): Add version 28.1. (Bug#46745)
Andrea Corallo [Tue, 23 Feb 2021 23:03:21 +0000 (00:03 +0100)]
Fix async compilation and paramenter naming
* lisp/emacs-lisp/comp.el (native--compile-async)
(native-compile-async): Fix broken parameter renaming.
Andrea Corallo [Tue, 23 Feb 2021 13:35:11 +0000 (14:35 +0100)]
Do not emit assumptions referencing clobbered mvars (bug#46670)
* lisp/emacs-lisp/comp.el (comp-func): Add `vframe-size' slot.
(comp-new-frame): Add `vsize' parameter.
(comp-limplify-top-level, comp-limplify-function): Update for new
`comp-new-frame'.
(comp-maybe-add-vmvar): New function.
(comp-add-cond-cstrs): Logic update to emit assumptions not
referencing clobbered variables.
(comp-place-phis, comp-ssa, comp-ssa-rename-insn)
(comp-ssa-rename): Update rename logic to rename also negative
slots.
(comp-fwprop-insn): Update to handle `(assume mvar mvar)' form.
* test/src/comp-tests.el (46670-1): Add testcase.
* test/src/comp-test-funcs.el (comp-test-46670-1-f)
(comp-test-46670-2-f): New functions.
Andrea Corallo [Mon, 22 Feb 2021 16:28:19 +0000 (17:28 +0100)]
* Move ssa rename from vector to comp-vec
* lisp/emacs-lisp/comp.el (comp-block): Updated `final-frame' slot
type.
(comp-limplify): Updated `frame' slot type.
(comp-slot-n, comp-new-frame, comp-place-phis, comp-ssa)
(comp-ssa-rename-insn, comp-ssa-rename, comp-finalize-phis): Use
`comp-vec'.
Andrea Corallo [Mon, 22 Feb 2021 14:07:00 +0000 (15:07 +0100)]
* Add a simple growable vector like type
* lisp/emacs-lisp/comp.el (comp-vec): Define struct.
(comp-vec-copy, comp-vec-length, comp-vec--verify-idx)
(comp-vec-aref, comp-vec-append, comp-vec-prepend): New functions.
Juri Linkov [Tue, 23 Feb 2021 19:05:30 +0000 (21:05 +0200)]
Small fixes
* lisp/emacs-lisp/seq.el (seq-contains): Move the ‘declare’ form
after the docstring.
* lisp/misc.el (copy-from-above-command): Fix whitespace regexp.
Juri Linkov [Tue, 23 Feb 2021 19:01:31 +0000 (21:01 +0200)]
* lisp/tab-line.el (tab-line-tab-name-format-function): New defcustom.
(tab-line-tab-name-format-default): New function as the default value.
(tab-line-format-template): Funcall tab-line-tab-name-format-function.
This is like recently added tab-bar-tab-name-format-function.
Juri Linkov [Tue, 23 Feb 2021 18:57:31 +0000 (20:57 +0200)]
* lisp/tab-bar.el (tab-prefix-map): Bind "n" to 'tab-duplicate'.
(tab-bar-separator): New function.
(tab-bar-make-keymap-1): Use it.
Ulf Jasper [Tue, 23 Feb 2021 18:43:56 +0000 (19:43 +0100)]
Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
Ulf Jasper [Tue, 23 Feb 2021 18:31:32 +0000 (19:31 +0100)]
Leave other windows unchanged, use search instead of re-search
* lisp/net/newst-backend.el (newsticker-customize-feed): Leave other
windws unchanged. Use search instead of re-search.
Ulf Jasper [Tue, 23 Feb 2021 18:23:50 +0000 (19:23 +0100)]
Fix invalid interactive-statement
* lisp/net/newst-backend.el (newsticker-customize): Fix invalid
interactive-statement.
Stefan Monnier [Tue, 23 Feb 2021 17:14:59 +0000 (12:14 -0500)]
* test/: Use lexical-binding the few remaining files
* test/manual/biditest.el: Use lexical-binding.
(biditest-generate-testfile): Remove unused var `levels`.
* test/manual/image-circular-tests.el: Use lexical-binding.
* test/manual/image-size-tests.el: Use lexical-binding.
(image-size-tests): Check `fboundp` before calling `imagemagick-types`.
* test/manual/redisplay-testsuite.el: Use lexical-binding.
* test/manual/cedet/cedet-utests.el: Use lexical-binding.
Use `with-current-buffer`.
(cedet-utest): Test `fboundp` i.s.o `featurep` to silence warning.
(srecode-map-save-file): Declare var.
(pulse-test): Test `fboundp` before calling `pulse-available-p`.
Declare `pulse-momentary-highlight-overlay` since it's not autoloaded.
* test/manual/cedet/semantic-tests.el: Use lexical-binding.
Use `with-current-buffer`.
(semanticdb-ebrowse-dump): Remove unused var `ab`.
(semanticdb-test-gnu-global): Don't use obsolete "name" arg to constructor.
(cedet-utest-directory): Declare var.
Ulf Jasper [Tue, 23 Feb 2021 16:33:46 +0000 (17:33 +0100)]
Add command for customizing current newsticker feed
* lisp/net/newst-backend.el (newsticker-customize-feed): New.
(newsticker--insert-bytes): Add documentation string.
(newsticker--decode-iso8601-date): Fix documentation string.
* lisp/net/newst-treeview.el (newsticker-treeview-customize-current-feed):
New.
(newsticker-treeview-mode-map): Add key for new command
'newsticker-treeview-customize-current-feed'. (Fixes second issue in
Bug#41376.)
Michael Albinus [Tue, 23 Feb 2021 15:04:22 +0000 (16:04 +0100)]
; Fix tramp.texi typos
Robert Pluim [Tue, 23 Feb 2021 13:21:26 +0000 (14:21 +0100)]
* doc/misc/tramp.texi: Grammar/style fixes
* doc/misc/tramp.texi (Overview):
(Obtaining @value{tramp}):
(Quick Start Guide):
(Configuration):
(Connection types):
(Inline methods):
(External methods):
(Password handling):
(Predefined connection information):
(Remote shell setup):
(Remote processes):
(Frequently Asked Questions):
(External packages):
(Traces and Profiles): Grammar/style fixes.
Robert Pluim [Tue, 23 Feb 2021 13:07:32 +0000 (14:07 +0100)]
* lisp/net/dictionary-connection.el: Grammar fixes
* lisp/net/dictionary-connection.el: Grammar fix
(dictionary-connection-open): Use active voice.
(dictionary-connection-status): Reword and improve formatting.
Robert Pluim [Tue, 23 Feb 2021 12:47:49 +0000 (13:47 +0100)]
Make message-mailto work for emacsclient
* doc/misc/message.texi (System Mailer Setup): Add index entry.
Mention option to use emacsclient.
* etc/NEWS: Mention emacsclient option for 'mailto:' handling.
* etc/emacs-mail.desktop: Add example using emacsclient.
* lisp/gnus/message.el (message-mailto): Add optional url argument
so we can call it from emacsclient.
Alan Mackenzie [Tue, 23 Feb 2021 11:16:24 +0000 (11:16 +0000)]
CC Mode: Fix bug in "state cache" invalidation function.
* lisp/progmodes/cc-engine.el (c-invalidate-state-cache-1): Rewrite part of
it, following the code in c-parse-state-1, to get a proper setting of
c-state-cache-good-pos.
Stefan Kangas [Tue, 23 Feb 2021 02:51:12 +0000 (03:51 +0100)]
Convert some more menus to easy-menu-define
* lisp/tar-mode.el (tar-mode-map):
* lisp/textmodes/sgml-mode.el (sgml-mode-map, html-mode-map):
* lisp/wdired.el (wdired-mode-map): Move menus from here...
* lisp/tar-mode.el (tar-mode-immediate-menu, tar-mode-mark-menu)
* lisp/textmodes/sgml-mode.el (sgml-mode-menu, html-mode-menu):
* lisp/wdired.el (wdired-mode-menu): ...to here, and convert to
easy-menu-define.
Stefan Kangas [Tue, 23 Feb 2021 02:24:31 +0000 (03:24 +0100)]
Improve easymenu.el Commentary section
* lisp/emacs-lisp/easymenu.el: Improve Commentary section.